home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / comm / zoomhint.zip / BGFAX.DOC < prev    next >
Text File  |  1994-01-04  |  40KB  |  772 lines

  1.  
  2.  
  3.                Voice              B.J. Guillot            Data/Fax
  4.             713.893.9320      2611 Rushwood Circle      713.893.9124
  5.                             Houston Texas 77067-1941
  6.  
  7.           Copyright (C) 1993-1994 B.J. Guillot.  All Rights Reserved.
  8.  
  9.          =============================================================
  10.          BGFAX 1.10                                      JAN  4 JAN 94
  11.          =============================================================
  12.  
  13.                          Dedicated to Gene Roddenberry
  14.                                   1921-1991
  15.  
  16.          -------------------------------------------------------------
  17.          ABSTRACT                                  FidoNet 1:106/400.0
  18.          -------------------------------------------------------------
  19.  
  20.          BGFAX allows SYSOPs to accept faxes on their BBS line.  BGFAX can
  21.          also send faxes.  (While BGFAX was originally designed just for
  22.          sysops, it can also be used by Mr. Joe User who, like me, hates
  23.          TSR based fax programs that all the commerical fax software
  24.          developers love for some reason.)
  25.  
  26.          BGFAX is a tool designed for use with *ANY* Class 2 compliant fax
  27.          modem.  The fax modem must also support fully functional ADAPTIVE
  28.          ANSWERING.
  29.  
  30.          Common Class 2 fax modems include the Supra, Practical Peripherials
  31.          (may require purchase of a newer ROM revision if you are using an
  32.          older model), Zoom, etc.
  33.  
  34.          BGFAX also directly supports ZyXEL fax mode.  (AT#B1+FCLASS=6).
  35.  
  36.          BGFAX will *NOT* function with Class 1 *ONLY* fax modems.  Common
  37.          Class 1 *ONLY* fax modems include all non-v.32terbo USR fax modems,
  38.          Digicom Scouts, the AT&T Dataport, and the SupraLC.
  39.  
  40.          BGFAX can be used in FOUR distinct modes.
  41.  
  42.          FRONTEND MODE ... BGFAX will answer the telephone line ITSELF,
  43.                            handle events, pass data calls to a front end
  44.                            compatible BBS, and take fax calls.
  45.  
  46.          REAR END MODE ... BGFAX will be called from another program when
  47.                            an incoming fax is detected.  FidoNet sysops
  48.                            using front end mailers such as FrontDoor,
  49.                            Intermail, D'Bridge, Dutchie, etc. are required
  50.                            to use this mode.  The mailer must support the
  51.                            ability to exit to BGFAX when a fax is coming.
  52.  
  53.          SEND MODE ....... BGFAX has the ability to send faxes to another
  54.                            fax machine.  (At this time, the file to be sent
  55.                            must already be in converted fax format.)
  56.  
  57.          INITIALIZATION .. BGFAX will only initialize the modem, and then
  58.                            quit.  This mode is provided for people who need
  59.                            to use BGFAX in rear end mode, but their Fido
  60.                            mailer (or BBS software) will not allow the long
  61.                            initialization strings required for fax usage.
  62.  
  63.          -------------------------------------------------------------
  64.          INCLUDED FILES
  65.          -------------------------------------------------------------
  66.  
  67.          1.    BGFAX.DOC -- general documentation
  68.  
  69.          2.    BGFAX.TXT -- release notes
  70.  
  71.          3.    BGFAX.EXE -- the main executable
  72.  
  73.          4.   HELPME.ARJ -- specialized help files for various setups
  74.                             (front and rearend modes)
  75.  
  76.          6.   NEWFAX.EXE --\  optional TSR utility to notify the user
  77.          7.   FAXOFF.COM --/  if a fax has been received
  78.  
  79.          5. REGISTER.FRM -- registration form
  80.  
  81.          -------------------------------------------------------------
  82.          DISCLAIMER
  83.          -------------------------------------------------------------
  84.  
  85.          BGFAX and accompanying files are provided AS IS without any
  86.          warranty, expressed or implied.  This includes without limitation
  87.          the fitfulness for a particular purpose or application and any
  88.          warranties of merchantability.
  89.  
  90.          While I tried to be as through as possible in preparing BGFAX,
  91.          B.J. Guillot shall not be liable for any damages, whether direct,
  92.          indirect, special, incidental or consequential arising from a
  93.          failure of this program or accompanying files to operate in a
  94.          manner desired by the user.  B.J. Guillot shall not be liable for
  95.          any damage to data or property which may by caused directly or
  96.          indirectly by use of this program.
  97.  
  98.          In no event will B.J. Guillot be liable to you for any damages,
  99.          including any lost profits, lost savings or other incidental or
  100.          consequential damages arising out of your use or inability to use
  101.          the program, or for any claim by any other party.  Individuals using
  102.          the software bear all risk as to its quality and performance.
  103.   
  104.          -------------------------------------------------------------
  105.          CONTACTING ME
  106.          -------------------------------------------------------------
  107.  
  108.           FidoNet:  1:106/400                   Voice: +1 713.893.9320
  109.          InterNet:  st1r8@jetson.uh.edu      Data/Fax: +1 713.893.9124
  110.  
  111.          The latest versions of BGFAX can be obtained by Fido FREQ at the
  112.          above Fido node number with the magic name "BGFAX" and can be
  113.          obtained by anonymous FTP for InterNet users at the site
  114.          "CSN.ORG" in the "Computech" directory.
  115.  
  116.          BGFAX can also be obtained from Fido 2:512/39.  This system is
  117.          called The Owl's Nest and is the Dutch Supra Distributor.  They
  118.          have three nodes:
  119.  
  120.          +31 0.2155.10921      +31 0.2155.12571      +31 0.2155.28096
  121.  
  122.          An alternate distribution site is Fido 3:635/552.  Cloud Nine.
  123.  
  124.          +61-3-803-6954
  125.  
  126.          -------------------------------------------------------------
  127.          MISCELLANEOUS NOTES
  128.          -------------------------------------------------------------
  129.  
  130.          BGFAX takes the fax call itself.  It does *NOT* require any special
  131.          TSR drivers to be used and does *NOT* pass control to another fax
  132.          program to receive the fax.
  133.  
  134.          ...HOWEVER... You *WILL* need some type of external fax program to
  135.          VIEW and PRINT the received fax.  BGFAX currently supports two
  136.          popular fax formats.  Smith Micro Software's Quick Link II, which
  137.          is included with several faxmodems, and ZyXEL's ZFAX software.
  138.          (ZFAX will not function on a normal Class 2 faxmodem, but it will
  139.          allow you to view and print BGFAX faxes stored in ZFAX format.)
  140.          If anyone can get me the formats for other popular packages, I
  141.          will gladly add them to BGFAX if its not too much trouble.  A
  142.          number of people have requested WinFax format, but I can't find
  143.          any information on Delrina's WinFax file format.
  144.  
  145.          PLEASE NOTE: BGFAX does not need nor use a FOSSIL driver.  BGFAX
  146.          has internal communication support for all UART types including
  147.          the 16550A FIFO chip.  BGFAX assumes ...
  148.  
  149.          COM1=3F8x4     COM2=2F8x3     COM3=3E8x4     COM4=2E8x3
  150.  
  151.          If you are using a nonstandard port configuration, whenever BGFAX
  152.          requires a port number to be entered (such as po=2), instead of
  153.          entering the port number, enter the base address and IRQ seperated
  154.          by an 'x' character (such as po=2E8x5).  BGFAX requires the base
  155.          address be given in hexidecimal notation.
  156.  
  157.          If you are using a ZyXEL modem, whenever you specify the com port
  158.          for BGFAX, you will need to put an exclamation point, !, i.e.,
  159.          po=2! so that BGFAX will not attempt to relock the DTE.  Most
  160.          modems work fine without the !, but remember this option is
  161.          available.  I've also heard that the Zoom VFP Internal Fax Modem
  162.          may also require this ! option.
  163.  
  164.          BGFAX supports Desqview's alternate video buffer zone, if used, and
  165.          will return ticks to other tasks.
  166.  
  167.          This program was compiled under Borland's Turbo Pascal 7.0.
  168.  
  169.          I do all testing with a Supra Fax Modem (ROCKWELL based) v.32bis
  170.          external with V1.80-02 firmware and FrontDoor 2.02/NC running on
  171.          a 386DX/40.  I also routinely test BGFAX with a generic no-namer
  172.          2400 data, 9600 send/receive fax (SIERRA based) modem from Computer
  173.          City running on the ever-so-slow 286/8.
  174.  
  175.          -------------------------------------------------------------
  176.          QUICK TUTORIAL ON SOME FAX CLASS 2 COMMANDS
  177.          -------------------------------------------------------------
  178.  
  179.          AT+FCLASS=?
  180.          ===========
  181.          This command will allow you to see if your fax modem supports
  182.          the "unofficial" Fax Class 2 standard.  The modem should report
  183.          back a string similar to:
  184.  
  185.          0,1,2   or   0,2   or   0,1,2.0   or   ERROR
  186.  
  187.              0 = Data
  188.              1 = Fax Class 1 capable
  189.              2 = Draft Fax Class 2 "compatible"
  190.            2.0 = Fax Class 2.0 capable
  191.          ERROR = no fax capabilities
  192.  
  193.          Do *NOT* use the "AT+FCLASS=n" command in any of your intialization
  194.          strings.  (Unless you are using Class 2.0).
  195.  
  196.          GROUP III and CLASS 2
  197.          =====================
  198.  
  199.          Many people are often confused between the terminology "GROUP" and
  200.          "CLASS" regarding fax modems.
  201.  
  202.          ALL FAX EQUIPMENT is "GROUP 3" compatible.  This includes fax
  203.          machines, fax modems, standalone PC fax cards, etc.  Group 3 just
  204.          defines the fax specifications, e.g., black-and-white, the
  205.          resolutions, etc.  When Group 4 fax machines are available to
  206.          consumers, they will offer color and/or ISDN fax capabilities, but
  207.          our fax modems will still only do black-and-white.
  208.  
  209.          "CLASS" refers only to fax modems.  CLASS has NOTHING AT ALL to do
  210.          with fax machines.  Class 1, Class 2 and Class 2.0 are different
  211.          methods of sending commands to a fax modem from a computer serial
  212.          port.  Many fax modems offer the Class 2 command set.
  213.  
  214.          AT+FAA=1
  215.          ========
  216.          This command will put your modem in ADAPTIVE ANSWERING mode.  This
  217.          means your modem will properly mate with either a standard modem
  218.          data call or a fax machine/fax modem.  Some modems, such as the
  219.          Supra, will report a "FAX" response the instant a fax CNG tone is
  220.          heard from the remote end.  Some modems are brain dead and will
  221.          report "FAX" whenever an "ATA" command is issued to the modem
  222.          regardless of whether the incoming fax is data or fax.
  223.  
  224.          All modems, on true fax calls, will report a "+FCON" response code
  225.          when the fax connection is truly established.  (This is similar to
  226.          a "CONNECT 14400" on a data call.)
  227.  
  228.          Many modems are slightly brain dead and will forget the +FAA
  229.          setting when another command is issued to the modem.  To ensure
  230.          you always answer in adaptive mode, rather than using "ATA" to
  231.          answer the phone, use the following: "AT+FAA=1;A".
  232.  
  233.          The ";", semicolon, is used as a seperator for fax commands.  Some
  234.          modems, such as the Supra, do not require it.  Others, such as the
  235.          PPI, will "ERROR" out if the semicolons are not used.
  236.  
  237.          A final note about adaptive answering: IT IS NOT 100% ACCURATE.
  238.  
  239.          Every now and then, your modem may get confused and think a data
  240.          call is a fax call.  There is nothing I can do about this as it is
  241.          most likely a firmware problem with the modem.  Some modems are
  242.          very brain dead and allow low speed data callers to call the BBS,
  243.          but all high speed callers are treated like they are fax machines.
  244.          (That is NOT GOOD.)  The only way to cure this is get a ROM chip
  245.          upgrade to the modem, if a newer version exists.  You'll just have
  246.          to experiment and make sure your adaptive answer works about
  247.          95% of the time, or whatever you decide is good.
  248.  
  249.          The Supra Fax Modem, for example, is pretty good concerning
  250.          adaptive answering.  (Note that very earlier versions of the
  251.          Supra, did not offer adaptive answering until the 1.2-H and 1.2-J
  252.          ROMs appeared on the scene.)  However, many older fax machines do
  253.          not send out a CNG tone when they are engaged.  Many fax modems,
  254.          including the Supra, won't know what to do, and will assume the
  255.          old fax machine is really a data caller.  Again, this is not good,
  256.          but its not that much of a problem.  Tell the operator of the old
  257.          fax machine to push their "START" button *IMMEDIATELY* after dialing
  258.          the last digit of the telephone number instead of waiting to hear
  259.          the fax tones on our end like many office people do.
  260.  
  261.          AT+FCR=1
  262.          ========
  263.          As silly as this command may sound, it gives permission to your
  264.          fax modem the ability to accept fax calls.  The fax modems default
  265.          to *NOT* allow incoming fax calls (EVEN IF ADAPTIVE ANSWERING IS
  266.          ENABLED!)  So, just make sure +FCR is always equal to 1.
  267.  
  268.          AT+FLID="713 893 9124"
  269.          ======================
  270.          ( The Class 2.0 command is AT+FLI )
  271.  
  272.          The above command sets your modems fax ID string.  This is the
  273.          string that is send to the remote end on fax connects.  (It's the
  274.          deal that's printed on the little 'confirmation reports' that many
  275.          fax machines make.)  The fax ID can ONLY BE A MAXIMUM OF *20*
  276.          CHARACTERS.  If you try to stuff more than 20 characters in a fax
  277.          ID string, the modem will respond with an "ERROR".  DO NOT USE
  278.          HIGH-BIT ASCII CHARACTERS IN THIS STRING.  Use only simple
  279.          letters, numbers, and punctuation marks.  (High-bit ASCII
  280.          characters include foreign accented letters, inverted question
  281.          marks, etc.)
  282.  
  283.          I've been told that some older fax machines will go nuts if you
  284.          use a fax ID with ALPHABETIC letters and that the only true valid
  285.          values, as specified by the CCITT (PLUS, SPACE, DASH, and the
  286.          numbers ZERO through NINE).  I've never seen this happen
  287.          personally, but am informing you of it nevertheless.
  288.  
  289.          AT+FDCC=1,5,0,2,0,0,0,0
  290.          =======================
  291.  
  292.          The above command is what the power on defaults to a 14400 fax
  293.          modem are, with one exception.  The first number, 1, allows your
  294.          fax modem to accept high resolution fax documents.  The power on
  295.          default to most modems are to accept only low resolution
  296.          documents.  The second number, 5, allows your fax modem to use fax
  297.          speeds up to 14400 bps.
  298.  
  299.          If you issue the above command on a fax modem with an upper limit
  300.          of 9600 on fax tranmissions, you will receive an "ERROR" or cause
  301.          the modem to behave odd.  Use this string on a 9600 fax modem:
  302.  
  303.          AT+FDCC=1,3,0,2,0,0,0,0
  304.  
  305.          The remaining numbers are not that important.  Changing them
  306.          around, though, may cause BGFAX to fail.  The command can also be
  307.          abbreviated to "AT+FDCC=1,5" or "AT+FDCC=1,3".
  308.  
  309.          STACKING
  310.          ========
  311.          A single command string can be made using what we need ...
  312.  
  313.          AT+FAA=1;+FCR=1;+FLID="713 893 9124";+FDCC=1,5,0,2,0,0,0,0
  314.  
  315.          However, if you are using BGFAX in rear end mode with a Fido
  316.          mailer, you may have a hard time of making an initialization
  317.          string that long, so you may be required to split the line into a
  318.          few pieces.  Remeber to make your ATA command "AT+FAA=1;A" if it
  319.          is possible to change in your mailer.
  320.  
  321.          The +FDCC string must come at the end of the stack of commands!
  322.  
  323.          AT+FMFR?
  324.          ========
  325.          ( The Class 2.0 command is AT+FMI? )
  326.  
  327.          If you want to find out who makes the fax datapump for your modem,
  328.          this command should tell you if you enter it in while in terminal
  329.          mode.  My Supra (and many others) report "ROCKWELL".  My Cheap
  330.          2400 data, 9600 S/R fax modem reports "SIERRA".  Others report
  331.          "EXAR" and other things as well.
  332.  
  333.          FAX MODE
  334.          ========
  335.  
  336.          Probably 95% of you will be using BGFAX with a high speed modem
  337.          (v.32 or v.32bis).  Many of you may have started off with slower
  338.          300, 1200, or 2400 modems from long ago.  If you can remember back
  339.          that far, when an incoming data call came in, you would see a
  340.          string like "CONNECT 1200".  If your port was set at 2400, you
  341.          would garbage on the screen unless you shifted your bps rate down
  342.          to 1200 to match that of the caller.  Many newer terminal programs
  343.          refer to this speed shift as "Autobaud".
  344.  
  345.          Modern modems require your serial port be locked at a specific
  346.          speed (such as 19200, 38400, 57600, etc.) so that you can achieve
  347.          higher thruput via compression engines such as MNP and v.42bis.
  348.          The modem-to-modem speed may only be 14400, but the modem-to-
  349.          computer speed stays "locked" at 38400.  Autobaud is not required,
  350.          and if used, would result is garbage on the screen.
  351.  
  352.          Why am I telling you all this?  Well, I don't know who's silly
  353.          idea it was, but the powers that be decided that fax modems should
  354.          use the ancient method of changing the port rate when a fax is
  355.          incoming or outgoing.
  356.  
  357.          After your modem reports the result code "+FCON" all further
  358.          communications *MUST* be done at 19200 bps, even if you are locked
  359.          at 38400 or 57600.  If the port speed is not relocked at 19200,
  360.          nothing but garbage will come on the screen.
  361.  
  362.          I'm telling you this because I frequently get mail asking me why
  363.          I'm changing the port speed to 19200.  It's not my fault!  That's
  364.          the way is has to be done!  The only modem that I know that does
  365.          not require this idiotic speed shift is the ZyXEL modem.  In fact,
  366.          a special option must be used to tell BGFAX you are using a ZyXEL
  367.          or BGFAX will fail as it will try talking to the ZyXEL modem at
  368.          19200 instead of 57600 or whatever rate it's locked at.
  369.  
  370.          -------------------------------------------------------------
  371.          FRONTEND MODE
  372.          -------------------------------------------------------------
  373.  
  374.          To use BGFAX in front end mode, you say "BGFAX /HOST".
  375.  
  376.          If you plan on using BGFAX in Frontend mode, you need to do a
  377.          couple of things first.
  378.  
  379.          1. An evironment variable called BGFAX needs to be inserted in
  380.             your AUTOEXEC.BAT or someother batch file.  Example:
  381.  
  382.             SET BGFAX=C:\BGFAX
  383.  
  384.             This environment variable points to the location of your BGFAX
  385.             configuration file and the directory where faxes will be
  386.             received into.
  387.  
  388.          2. Make sure the BGFAX.CNF configuration file is in the directory
  389.             pointed to by the BGFAX environment variable and make any
  390.             changes you think necessary.  The included configuration file
  391.             is self explantory.  I won't repeat the format here.
  392.  
  393.          3. BGFAX can exit with 7 possible internal errorlevels:
  394.  
  395.                7 - number blacklisted
  396.                6 - host mode idle for more than x minutes
  397.                5 - fax was sent successfully
  398.                4 - fax was received
  399.                3 - local logon
  400.                2 - data call
  401.                1 - restart batch file
  402.  
  403.             If no errorlevel is encountered, it means the sysop aborted
  404.             BGFAX by pressing the [Esc] key or a serious error occurred.
  405.  
  406.          4. When BGFAX is waiting for a call, pressing Ctrl-R will reset
  407.             the on screen counters.  Ctrl-A will force BGFAX to send the
  408.             answer string to the modem.
  409.  
  410.          5. When a data call comes in, BGFAX creates a DOBBS.BAT file that
  411.             looks like so:
  412.  
  413.             C:\BGFAX\EXEBBS.BAT 9600 1 528 /ARQ
  414.             
  415.             The first parameter is the DCE data speed, then the com port,
  416.             number of minutes until the next event, and then the error
  417.             correcting string, if any.  The EXEBBS.BAT file must be created
  418.             by you so that your bulletin board software is loaded up in
  419.             frontend mode (ie., the data connection is already hot.)  When
  420.             you speed to specify the DCE rate in your EXEBBS.BAT file use
  421.             the variable %1 and the com port is %2, etc.
  422.  
  423.          -------------------------------------------------------------
  424.          SEND FAX MODE
  425.          -------------------------------------------------------------
  426.  
  427.          If you wish to have BGFAX send a fax file that it has received to
  428.          another fax number or send a fax file that has already been
  429.          converted by Quick Link II or ZFAX.
  430.  
  431.             BGFAX /SEND FAX0001.ZFX 893-9124
  432.  
  433.          See the BGFAX.CNF file for more info, such as maximum amount of
  434.          busy signals and failures before exit, etc.
  435.  
  436.          At this time, only previously converted fax files can be sent.
  437.          (i.e., ASCII files have to be translated to ZFAX .FAX format or
  438.          QLII .QFX format.)
  439.  
  440.          BGFAX will exit with an errorlevel of 1 if the fax was not
  441.          successfully sent, or errorlevel 5 if everything worked okay.
  442.  
  443.          -------------------------------------------------------------
  444.          INITIALIZATION MODE
  445.          -------------------------------------------------------------
  446.  
  447.          If you want BGFAX just to initialize the modem, you can have it do
  448.          so with the BGFAX /INIT parameter.  BGFAX will get the port,
  449.          speed, and initialization strings from the BGFAX.CNF file in the
  450.          directory specified by the BGFAX environment variable.
  451.  
  452.          This mode is provided for people who need to use BGFAX in rear end
  453.          mode, but their Fido mailers (or BBS software) do not allow them
  454.          to use the long initialization strings required for fax usage.
  455.  
  456.          -------------------------------------------------------------
  457.          REAR END MODE (FIDO MAILERS, ETC.)
  458.          -------------------------------------------------------------
  459.  
  460.          Rear end mode is useful for those of us who are FidoNet members
  461.          where a Fido mailer is required to be running 24 hours a day.  It
  462.          will be your job to figure out how to get your mailer to exit to
  463.          BGFAX when your modem informs the mailer a fax call is coming
  464.          through.  (See the BGFAX.HLP file for hints on specific mailers.)
  465.  
  466.          First of all, though, you need to discover what string your modem
  467.          sends when it has reliably mated with an incoming fax.  My Supra
  468.          Fax Modem for example returns "FAX".  All modems eventually report
  469.          "+FCON".  In my opinion, it is better to trigger your mailer to
  470.          exit on "FAX" *IF* your faxmodem supports it.  I've heard about
  471.          some brain dead modems to report "FAX" whenever an "ATA" is sent
  472.          to the modem.  If your modem does that, do *NOT* use "FAX" as the
  473.          trigger string in your mailer.
  474.  
  475.          Why is it better to use "FAX" as a trigger string?  My Supra
  476.          reports "FAX" as soon as it hears the CNG tone from the remote fax
  477.          device.  It takes about 1.5 seconds or so for the fax machine and
  478.          my Supra to mate, which gives BGFAX plenty and plenty of time to
  479.          load up and take the fax, even on slow computers.  (It should be
  480.          noted that your mailer must exit *IMMEDIATELY* upon receipt of the
  481.          fax trigger string, because after those 1.5 seconds, if the remote
  482.          fax machine cannot mate, it will hangup!)
  483.  
  484.          For those whose modems do not report "FAX", you will have to use
  485.          the "+FCON" string as the trigger string.  One downside to this is
  486.          that it makes timing much more critical and you will probably miss
  487.          your chance of obtaining the remote fax ID string.
  488.  
  489.          Your mailer should run BGFAX as soon as the trigger string comes
  490.          in the port.  It should call BGFAX in the following manner:
  491.  
  492.          BGFAX /how [faxpath port faxtype [pid]]
  493.  
  494.          FAXPATH will be the directory where incoming faxes are to be
  495.          placed.  PORT is a valid communications port from 1 to 4, or,
  496.          optionally, a hexidecial base address and IRQ formatted as
  497.          followed "3F8x5".  Also, optionally, if the port has a bang, !,
  498.          following it, it will force the port to stay locked at the current
  499.          speed rather than shifting to 19200 on fax connects.  (THIS '!' IS
  500.          TO BE USED ONLY FOR ZYXEL MODEMS, OR FOR PEOPLE THAT REALLY KNOW
  501.          WHAT THEY ARE DOING.)  FAXTYPE is a single character 'Z' or 'Q'.
  502.          'Z' for ZyXEL ZFAX format, 'Q' for Smith Micro Software's Quick
  503.          Link II fax format.
  504.  
  505.          The /how deal is the most critical switch.  There are three
  506.          possible settings.
  507.  
  508.               /FAX   ... Modem reports "FAX" or "CONNECT FAX".
  509.                          BGFAX will automatically detect whether it should
  510.                          use Class 2 (Supra, Zoom) or the ZyXEL fax mode
  511.                          based on the next message (ie, "+FCON" or "ZyXEL").
  512.  
  513.               /FAST  ... Modem reports "+FCON" (PPI, other Class 2 modems)
  514.               /FCON  ... Try this option if /FAST doens't work.
  515.  
  516.               /FCO   ... Modem reports "+FCO" (USR 21.6K)
  517.               /FCOS  ... Try this option if /FCO doesn't work.
  518.  
  519.               /FZYX  ... ZyXEL owners use this if /FAX doesn't work.
  520.  
  521.          Here is a schematic of how each option behaves:
  522.  
  523.               /FAX [ Supra, ZyXEL, i.e. all modems that report "FAX" ]
  524.                 1. keeps port at locked DTE
  525.                 2. waits for "+FCON"     _or_  2. waits for "ZyXEL"
  526.                 3. drops port to 19200         3. waits for high CTS
  527.                 4. waits for "OK"              4. sends <DC2>
  528.                 5. sends "AT+FDR"
  529.  
  530.               /FAST [ PPI, i.e. all modems that report "+FCON" ]
  531.                 1. drops port to 19200
  532.                 2. waits for "OK"
  533.                 3. sends "AT+FDR"
  534.  
  535.               /FCON [ PPI, use this if above options don't work ]
  536.                 1. drops port to 19200
  537.                 2. blindly sends "AT+FDR"
  538.  
  539.               /FCO  [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
  540.                 1. keeps port at locked DTE
  541.                 2. waits for "OK"
  542.                 3. drops port to 19200 _only if_ DTE rate is 38400
  543.                    (leaves port alone if set at 19200, 57600 or 115200)
  544.                 4. sends "AT+FDR"
  545.  
  546.               /FCOS [ USR, i.e. all Class 2.0 modems that report "+FCO" ]
  547.                 1. drops port to 19200 _only if_ DTE rate is 38400
  548.                    (leaves port alone if set at 19200, 57600 or 115200)
  549.                 2. blindly sends "AT+FDR"
  550.  
  551.               /FZYX  [ ZyXEL, use this only if /FAX doesn't work ]
  552.                 1. waits for high CTS
  553.                 2. sends <DC2>
  554.  
  555.          When a fax is inbound, I call BGFAX in rearend mode with the
  556.          following command line for my Supra:
  557.  
  558.               BGFAX /FAX C:\BGFAX 1 Z
  559.  
  560.          The /FAX means that I used the modem response "FAX" as a trigger
  561.          for FD (see BGFAX.HLP for more details), C:\BGFAX is the path
  562.          where I want all faxes to be stored, "1" is the communications
  563.          port, and the "Z" represents I want faxes saved in ZyXEL's ZFAX
  564.          image format.
  565.  
  566.          If you want to run BGFAX on a multinode system, an optional fifth
  567.          parameter can be used.  This fifth parameter can be up to three
  568.          characters and it is called the PID.  Example:
  569.  
  570.               BGFAX /FAX C:\BGFAX 1 Z 99
  571.  
  572.          The only difference between the command above and the previous one
  573.          is that rather than making a BGFAX.LOG, all log entries will be
  574.          written to a file called BGFAXpid.LOG, in this case, BGFAX99.LOG.
  575.  
  576.          -------------------------------------------------------------
  577.          AFTER YOU RECEIVE THE FAX
  578.          -------------------------------------------------------------
  579.  
  580.          NAMING CONVENTION
  581.          =================
  582.          The name of the fax file will be FAXnnnn.xFX where "nnnn" is a
  583.          number that is padded with zeros and "x" is the letter "Z" or "Q"
  584.          depending upon which fax format you save the file in.  If you ever
  585.          see a BGFAX.TMP file in your directory, it should *NOT* be there,
  586.          as it should have been renamed in the FAXnnnn.xFX format.  If it
  587.          is there, it means some kind of problem happened during the fax
  588.          reception.
  589.  
  590.          FAXIN.LOG
  591.          =========
  592.          BGFAX creates a BGFAX.LOG file that contains a bunch of
  593.          information that is mainly only for debug purposes.  A much
  594.          cleaner log file is called FAXIN.LOG and looks like this:
  595.  
  596. Date  Time  ET    Bytes   Rate  Filename     Remote Fax ID        Pgs  Notes
  597. -------------------------------------------------------------------------------
  598. 12-21 11:52 00:42   18183  9600*FAX0001.ZFX  Unknown                2  Finished
  599. 12-21 18:04 00:38   18182  9600 FAX0002.ZFX  Unknown                2  Not Done
  600. 12-22 21:30 00:29   17793 14400*FAX0003.ZFX  7138939124             1  Finished
  601. 12-22 21:42 00:29   17541 14400 FAX0004.ZFX  TRANQUILITY BASE       1  Finished
  602. 12-23 06:44 00:32   16941  9600*FAX0005.ZFX  Null ID Received       1  Finished
  603. 12-25 17:21 01:22  107392 14400*FAX0006.ZFX  7132424708             1  Finished
  604.  
  605.          The asterick between the fax DCE rate and the filename indicates
  606.          the fax was marked as high resolution.  "Not Done" under Notes
  607.          means that BGFAX believed more pages were to have followed, but
  608.          were not actually received.  "ET" is estimated time.  Everything
  609.          else is self explanatory.
  610.  
  611.          DOPRINT.BAT
  612.          ===========
  613.          After you successfully receive a fax, BGFAX will exit with an
  614.          errorlevel of 4 and append (or create) a DOPRINT.BAT file.
  615.  
  616.          CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0085.ZFX
  617.          CALL C:\BGFAX\EXEPRINT.BAT C:\BGFAX\FAX0086.ZFX
  618.  
  619.          You do not have to do anything with this at all, but it is
  620.          provided for those of you who wish to print faxes as they are
  621.          received.  It will call the EXEPRINT.BAT file and pass it the
  622.          parameter with the path and name of the fax file that was just
  623.          received.  If you are using Smith Micro Software's Quick Link II,
  624.          for example, and are one of those people that leave your printer
  625.          on 24 hours a day, your EXEPRINT.BAT file might contain this:
  626.  
  627.          @echo off
  628.          printfax %bgfax%\%1 24pin.qlp
  629.  
  630.          Remeber to delete the DOPRINT.BAT file after you process it.
  631.  
  632.          -------------------------------------------------------------
  633.          HANGUP STATUS CODES
  634.          -------------------------------------------------------------
  635.  
  636.          When BGFAX reports "Problematic fax reception", it will indicate a
  637.          fax hangup code, such as [+FHNG: 73].  This chart, taken from the
  638.          Supra CLASS_2.TXT fax command set documentation (which, I believe
  639.          was taken from the Rockwell Class 2 documentation), allows you to
  640.          match up the +FHNG message with its true meaning.  For example,
  641.          +FHNG: 73 would indicate "T.30 T2 timeout, expected page not
  642.          received", which really does not say much, but it may give you
  643.          some clue.  I don't know what most of these mean myself, so I
  644.          don't know whether it will provide you any luck or not, but, many
  645.          people asked that it be included, so here it is.
  646.  
  647.      /-----------------------------------------------------------------\
  648.      | 2.0   Class 2 |  Cause Description                              |
  649.      |---------------|-------------------------------------------------|
  650.      | 00-0F     0-9 |  CALL PLACEMENT AND TERMINATION                 |
  651.      |---------------|-------------------------------------------------|
  652.      | 00          0 |  Normal and proper end of connection            |
  653.      | 01          1 |  Ring Detect without successful handshake       |
  654.      | 02          2 |  Call aborted, from +FK/+FKS or <CAN>           |
  655.      | 03          3 |  No Loop Current                                |
  656.      | 04        n/a |  Ringback detected, no answer (timeout)         |
  657.      | 05        n/a |  Ringback detected, answer without CED          |
  658.      |---------------|-------------------------------------------------|
  659.      | 10-1F   10-19 |  TRANSMIT PHASE A & MISCELLANEOUS ERRORS        |
  660.      |---------------|-------------------------------------------------|
  661.      | 10         10 |  Unspecified Phase A error                      |
  662.      | 11         11 |  No Answer (T.30 T1 timeout)                    |
  663.      |---------------|-------------------------------------------------|
  664.      | 20-3F   20-39 |  TRANSMIT PHASE B HANGUP CODES                  |
  665.      |---------------|-------------------------------------------------|
  666.      | 20         20 |  Unspecified Transmit Phase B error             |
  667.      | 21         21 |  Remote cannot receive or send                  |
  668.      | 22         22 |  COMREC error in transmit Phase B               |
  669.      | 23         23 |  COMREC invalid command received                |
  670.      | 24         24 |  RSPEC error                                    |
  671.      | 25         25 |  DCS sent three times without response          |
  672.      | 26         26 |  DIS/DTC received 3 times; DCS not recognized   |
  673.      | 27         27 |  Failure to train at 2400 bps or +FMS/          |
  674.      |               |                                  +FMINSP value  |
  675.      | 28         28 |  RSPREC invalid response received               |
  676.      |---------------|-------------------------------------------------|
  677.      | 40-4F   40-49 |  TRANSMIT PHASE C HANGUP CODES                  |
  678.      |---------------|-------------------------------------------------|
  679.      | 40         40 |  Unspecified Transmit Phase C error             |
  680.      | 41        n/a |  Unspecified Image format error                 |
  681.      | 42        n/a |  Image conversion error                         |
  682.      | 43         43 |  DTE to DCE data underflow                      |
  683.      | 44        n/a |  Unrecognized Transparent data command          |
  684.      | 45        n/a |  Image error, line length wrong                 |
  685.      | 46        n/a |  Image error, page length wrong                 |
  686.      | 47        n/a |  Image error, wrong compression code            |
  687.      |---------------|-------------------------------------------------|
  688.      | 50-6F   50-69 |  TRANSMIT PHASE D HANGUP CODES                  |
  689.      |---------------|-------------------------------------------------|
  690.      | 50         50 |  Unspecified Transmit Phase D error             |
  691.      | 51         51 |  RSPREC error                                   |
  692.      | 52         52 |  No response to MPS repeated 3 times            |
  693.      | 53         53 |  Invalid response to MPS                        |
  694.      | 54         54 |  No response to EOP repeated 3 times            |
  695.      | 55         55 |  Invalid response to EOP                        |
  696.      | 56         56 |  No response to EOM repeated 3 times            |
  697.      | 57         57 |  Invalid response to EOM                        |
  698.      | 58         58 |  Unable to continue after PIN or PIP            |
  699.      |---------------|-------------------------------------------------|
  700.      | 70-8F   70-89 |  RECEIVE PHASE B HANGUP CODES                   |
  701.      |---------------|-------------------------------------------------|
  702.      | 70         70 |  Unspecified Receive Phase B error              |
  703.      | 71         71 |  RSPREC error                                   |
  704.      | 72         72 |  COMREC error                                   |
  705.      | 73         73 |  T.30 T2 timeout, expected page not received    |
  706.      | 74         74 |  T.30 T1 timeout after EOM received             |
  707.      |---------------|-------------------------------------------------|
  708.      | 90-9F   90-99 |  RECEIVE PHASE C HANGUP CODES                   |
  709.      |---------------|-------------------------------------------------|
  710.      | 90         90 |  Unspecified Receive Phase C error              |
  711.      | 91         91 |  Missing EOL after 5 seconds                    |
  712.      | n/a        92 |  < Not assigned >           /--- Rockwell only  |
  713.      | 92 -Note-> 94 |  Bad CRC or frame (ECM {or BFT} modes)          |
  714.      | 93         93 |  DCE to DTE buffer overflow                     |
  715.      |---------------|-------------------------------------------------|
  716.      | A0-BF 100-119 |  RECEIVE PHASE D HANGUP CODES                   |
  717.      |---------------|-------------------------------------------------|
  718.      | A0        100 |  Unspecified Receive Phase D errors             |
  719.      | A1        101 |  RSPREC invalid response received               |
  720.      | A2        102 |  COMREC invalid response received               |
  721.      | A3        103 |  Unable to continue after PIN or PIP            |
  722.      |---------------|-------------------------------------------------|
  723.      | C0-DF     n/a |  RESERVED FOR FUTURE STANDARDIZATION            |
  724.      | E0-FF     n/a |  REVERVED FOR MANUFACTURER SPECIFIC USE         |
  725.      | n/a   120-255 |  RESERVED CODES                                 |
  726.      \-----------------------------------------------------------------/
  727.  
  728.          -------------------------------------------------------------
  729.          ACKNOWLEDGEMENTS
  730.          -------------------------------------------------------------
  731.  
  732.          I would like to thank the following people for their assistance
  733.          during the beta test phase.
  734.  
  735.          Bill Huther
  736.          Brian Wood
  737.          Russell Kroll
  738.          Ethan Brofman
  739.          Ed Lucas
  740.          ...and many people from the Internet and FidoNet.
  741.  
  742.          -------------------------------------------------------------
  743.          SHAREWARE
  744.          -------------------------------------------------------------
  745.  
  746.          THIS PROGRAM IS SHAREWARE.
  747.  
  748.          If you use this program for more than four weeks you are required
  749.          to register it for its low cost of only $25 US DOLLARS.  If you
  750.          cannot afford this we can work something out.
  751.  
  752.          Registrations encourage frequent updates.
  753.  
  754.          If you are paying by check or money order, please print out the
  755.          REGISTER.FRM file, fill it out, and mail it to my address.
  756.  
  757.          If you are paying by credit card (Visa, Mastercard, Discover or
  758.          American Express) you can (1) mail the form to me, (2) fax the
  759.          form to me, (3) netmail the form to me, or (4) call my BBS and
  760.          open door #6 and instantly register.
  761.  
  762.          All people will have to call my BBS and open door #6 to pick up
  763.          the BGFAX.KEY registration key file.
  764.  
  765.          I will mail (or air mail) registration letters out as well.
  766.  
  767.          -------------------------------------------------------------
  768.  
  769.          Regards,
  770.          B.J. Guillot
  771.  
  772.